package com.kadron.paging;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;

public interface ModelContainer extends Serializable {

	public static final int MAX_RECORDS = 5;
	public static final int PAGES_MAXIMUM = 10;
	public static final int FAST_STEP = 3;
	public static final int DEFAULT_PAGE = 1;

	public abstract void clear();

	public abstract int getRecords();

	public abstract void setRecords(int records);

	public abstract int getFastStep();

	public abstract void setFastStep(int fastStep);

	public abstract Long getCount();

	public abstract void setCount(Long count);

	public abstract List<Integer> getPages();

	public abstract int getLast();

	public abstract void wrapp(String key, KRow value);

	public abstract void unwrapp(String key);

	public abstract Collection<KRow> getWrapped();

	public abstract int getCurrentPage();

	public abstract void setCurrentPage(int currentPage);

	public abstract List<KRow> getModels();

	public abstract void setModels(List<KRow> models);

	public abstract Map<String, KRow> getWrappedData();

	public abstract Set<String> getWrappedKeys();

	public abstract boolean isEmpty();

	public abstract boolean isPagingAvb();

	public abstract boolean isFirstAvb();

	public abstract boolean isFastPrevAvb();

	public abstract boolean isFastNextAvb();

	public abstract boolean isLastAvb();

	public abstract boolean isAll();

	public abstract boolean isItemsAvb();

	public abstract void initPages();

}